let divCnt=0;
let btnCnt=3;
let lRectCnt=0;
var pObj;
var divObj;
var obj;
var lRect;
//创建页面元素
function createParaDiv()
{
	divObj = document.createElement("div");
	divCnt++;
	divObj.id="div"+(divCnt.toString());
	document.getElementById("mainc").appendChild(divObj);
}
function startAppendP(string)
{
	pObj = document.createElement("p");
	pObj.innerText = string;
	pObj.style.opacity = 0;
	document.getElementById("div"+divCnt).appendChild(pObj);
	obj=document.getElementById("div"+divCnt).lastChild;
	startFadeIn(obj);
}
function appendP(string)
{
	setTimeout(()=>startAppendP(string),t);
	t+=300;
}
function startAppendPGray(string)
{
	pObj = document.getElementById("luckWord");
	pObj.innerText += string;
	pObj.id="oldLuckWord";
}
function appendPGray(string)
{
	setTimeout(()=>startAppendPGray(string),600);
}


//随机幸运
let rdmLuck;
function randomStart(flag)
{
	rdmLuck = Math.floor( Math.random()*10+1);
	
	if(flag===undefined)
	{
		lRectCnt++;
		pObj = document.createElement("div");
		pObj.style="width:100%;height:10px;border:1px solid #111111;";
		pObj.id="lRectBg"+(lRectCnt.toString());
		document.getElementById("div"+divCnt).appendChild(pObj);
		
		pObj = document.createElement("div");
		pObj.style="width:40%;height:10px;background-color:#f8c4c3;";
		pObj.id="lRect"+(lRectCnt.toString());
		document.getElementById("lRectBg"+lRectCnt).appendChild(pObj);
	}
	
	let wd=rdmLuck*10;
    curWid=0;
    lRect=document.getElementById("lRect"+lRectCnt);
    lRect.style.width="0";
    pObj=document.createElement("p");
	pObj.style="color:#777777";
	pObj.innerText="运气：";
	pObj.id="luckWord";
	document.getElementById("div"+divCnt).appendChild(pObj);
    setTimeout(()=>aniSetWidth(wd),10);
}


//cont:按钮内容
//nxt_:第_项跳转的段落编号
//minVal_:第_项需要的最低运气
function startAppendB(cont,nxt1,minVal2,nxt2,minVal3,nxt3,minVal4,nxt4)
{
	//如果是这段的第一个按钮，增加水平分割线
	if(document.getElementById("div"+divCnt).querySelectorAll("button").length===0) 
	document.getElementById("div"+divCnt).innerHTML+="<hr>";
	//设置按钮内容
	btnCnt++;
	pObj=document.createElement("button");
	pObj.className="optionButton";
	pObj.id="button"+btnCnt;
	pObj.innerText=cont;
	//设置按钮上显示的成功率
	if(minVal4!==undefined) pObj.innerText+="("+(10-minVal3+1).toString()+"0%成功)";
	else if(minVal3!==undefined) pObj.innerText+="("+(minVal2-1).toString()+"0%失败)";
	else if(minVal2!==undefined) pObj.innerText+="("+(10-minVal2+1).toString()+"0%成功)";
	//设置跳转的下一项
	let nxt;
	pObj.onclick=function()
	{
		//换行
		pObj = document.createElement("br");
		document.getElementById("div"+divCnt).appendChild(pObj);
		let flag=false;
		//appendPGray("运气:"+rdmLuck+" "+luckWord);
		//一对一跳转
		if(minVal2===undefined) nxt=nxt1;
		//凶，吉
		else if(nxt3===undefined)
		{
			randomStart();
			if(rdmLuck<minVal2) 
			{
				if(techCnt>0) flag=true;
				else
				{
					appendPGray(rdmLuck+" （凶）");
					nxt=nxt1;
				}
			}
			else 
			{
				appendPGray(rdmLuck+" （吉）");
				nxt=nxt2;
			}
		}
		//凶，平，吉
		else if(nxt4===undefined)
		{
			randomStart();
			if(rdmLuck<minVal2) 
			{
				if(techCnt>0) flag=true;
				else
				{
					appendPGray(rdmLuck+" （凶）");
					nxt=nxt1;
				}
			}
			else if(rdmLuck<minVal3)
			{
				appendPGray(rdmLuck+" （平）");
				nxt=nxt2;
			}
			else
			{
				appendPGray(rdmLuck+" （吉）");
				nxt=nxt3;
			}
		}
		//大凶，凶，小吉，大吉
		else
		{
			randomStart();
			if(rdmLuck<minVal3) 
			{
				if(techCnt>0) flag=true;
				else if(rdmLuck<minVal2)
				{
					appendPGray(rdmLuck+" （大凶）");
					nxt=nxt1;
				}
				else
				{
					appendPGray(rdmLuck+" （凶）");
					nxt=nxt2;
				}
			}
			else if(rdmLuck<minVal4)
			{
				appendPGray(rdmLuck+" （小吉）");
				nxt=nxt3;
			}
			else
			{
				appendPGray(rdmLuck+" （大吉）");
				nxt=nxt4;
			}
		}
		//移除所有按钮和分割线
		var container = document.getElementById("div"+divCnt);
		var matches = container.querySelectorAll("button");
		for(let i=0;i<matches.length;i++) matches[i].remove();
		//重骰
		if(flag) 
			setTimeout(()=>reRoll(nxt1,minVal2,nxt2,minVal3,nxt3,minVal4,nxt4),1000); 
		//进入下一段
		else 
		{
			matches = container.querySelectorAll("hr");
			matches[0].remove();
			setTimeout(()=>generateNxtText(nxt),1000);
		}
	}
	//应用按钮
	document.getElementById("div"+divCnt).appendChild(pObj);
}
function appendButton(cont,nxt1,minVal2,nxt2,minVal3,nxt3,minVal4,nxt4)
{
	setTimeout(()=>startAppendB(cont,nxt1,minVal2,nxt2,minVal3,nxt3,minVal4,nxt4),t+400);
}
function reRoll(cont,nxt1,minVal2,nxt2,minVal3,nxt3,minVal4,nxt4)
{
	
}

//幸运相关
let techCnt=0;
//更新按钮的视觉效果
function updateLuck()
{
	var luckObj=document.getElementsByClassName("tech");
	console.log(luckObj);
	switch(techCnt)
	{
		case 0:luckObj[0].innerText="☆ ☆ ☆ ☆ ☆ ☆(0/6)";break;
		case 1:luckObj[0].innerText="★ ☆ ☆ ☆ ☆ ☆(1/6)";break;
		case 2:luckObj[0].innerText="★ ★ ☆ ☆ ☆ ☆(2/6)";break;
		case 3:luckObj[0].innerText="★ ★ ★ ☆ ☆ ☆(3/6)";break;
		case 4:luckObj[0].innerText="★ ★ ★ ★ ☆ ☆(4/6)";break;
		case 5:luckObj[0].innerText="★ ★ ★ ★ ★ ☆(5/6)";break;
		case 6:luckObj[0].innerText="★ ★ ★ ★ ★ ★(6/6)";break;
	}
}
///删除一层幸运术式。如果成功删除，返回true。
function delLuck()
{
	if(techCnt===0) return false;
	techCnt--;
	updateLuck();
	return true;
}
//添加一层幸运术式，如果成功添加，返回true
function addLuck()
{
	if(techCnt>=6) return false;
	techCnt++;
	updateLuck();
	return true;
}


//动画效果
let opacity=0;
let t=0;
let curWid=0;
//文字淡入
function startFadeIn()
{
	opacity=0;
	setTimeout(fadeIn,100);
}
function fadeIn() 
{
    if(opacity!==1)
	{
	    setTimeout(fadeIn,5);
	    opacity = Math.floor((opacity + 0.03)*100)/100;
	    if(1-opacity<=0.01) opacity = Math.floor(opacity + 0.02);
	    obj.style.opacity = opacity.toString();
	}
}
//随机运气条
function aniSetWidth(wd)
{
	if(curWid<wd)
	{
		setTimeout(()=>aniSetWidth(wd),10);
		curWid = curWid+5;
		lRect.style.width=curWid.toString()+"%";
	}
}

//页面初始化
function generateNxtText(k)
{
	createParaDiv();
	t=300;
	switch(k)
	{
		case 1:
		appendP("这是“帐”外最显眼的地方了。");
		appendP("我走到楼下时，有个人正在将改造人往大楼里丢。");
		appendP("“要上去吗？”他对我喊道，“再过一会儿就进不去了！”");
		appendP("我迅速溜进楼里，乘电梯直达顶楼。");
		appendP("天台直升机停机坪上，隐约有两个人的身影。其中一人相对年轻，另一人则是个老婆子。");
		appendButton("“你在做什么？”",2);
		break;
		case 2:
		appendP("“你在做什么？”");
		appendP("那婆子暼了我一眼，什么都没有说。");
		appendButton("“是帐吗？”",3);
		break;
		case 3:
		appendP("“是帐吗？”");
		appendP("“你知道就行了，不用非让我再跟你讲一遍。”");
		appendButton("“别那么急嘛。”",4);
		appendButton("“我也是诅咒师。”",5);
		break;
		case 4:
		appendP("“别那么急嘛。”");
		appendP("她嗤笑一声。");
		appendButton("“我也是诅咒师。”",5);
		break;
		case 5:
		appendP("“我也是诅咒师。”");
		appendP("“看得出来。”她粗声粗气地说。");
		appendP("“怎么，这么闲？没有自己的事要做？”");
		appendButton("“都做完了。”",6);
		appendButton("“我是来帮你的。”",7);
		appendButton("（转移话题…）",8);
		break;
		case 6:
		appendP("“都做完了。”我随口胡诌道。");
		appendP("“是吗？”她说，“那可真是太好了。”");
		appendButton("“他们让你今天来，你收钱了吗？”",9);
		appendButton("“五条悟要被封印了……”",10);
		break;
		case 7:
		appendP("“我是来帮你的。”我随口胡诌道。");
		appendP("“呵，”她眯眼上下打量着我，“还真是可信呢。”");
		appendButton("“他们让你今天来，你收钱了吗？”",9);
		appendButton("“五条悟要被封印了……”",10);
		break;
		case 8:
		appendButton("“他们让你今天来，你收钱了吗？”",9);
		appendButton("“五条悟要被封印了……”",10);
		break;
		case 9:
		appendP("“他们今天让你来，你收钱了吗？”");
		appendP("“你收了？”她反诘道。");
		appendButton("“……没有。”",12);
		break;
		case 10:
		appendP("“五条悟要被封印了……”我有些没话找话地说。");
		appendP("“他们跟我说他们可以做到。”那婆子半自言自语地嘀咕道。");
		appendP("“他们最好真的可以……”");
		appendButton("“今天之后，打算做什么？”",11);
		break;
		case 11:
		appendP("“今天之后，打算做什么？”");
		appendP("“今天之后做什么都可以吧？”");
		appendButton("“是啊……”",13);
		break;
		case 12:
		appendP("“……没有。”我说。");
		appendP("“那不就是了。”");
		appendP("“今天这么关键，让我倒贴钱我都来。”");
		appendButton("“是啊……”",13);
		appendButton("“我只是为了乐趣而来。”",14);
		break;
		case 13:
		appendP("“五条悟被封印后，就是我们的世代了。”");
		appendP("老婆子抬头望向事变中心的那座大厦。");
		appendButton("（沉默……）",15);
		break;
		case 14:
		appendP("“我只是为了乐趣而来。”我说。");
		appendP("“今天之后会有更多乐趣。”她接话道。");
		appendP("“五条悟被封印后，就是我们的世代了。”");
		appendP("老婆子抬头望向事变中心的那座大厦。");
		appendButton("（沉默……）",15);
		break;
		case 15:
		appendP("我不再说话，老婆子也毫不在意，自顾自地转头向那年轻人确认包裹里的物品。");
		appendP("无聊地眺望着涩谷高楼与街道，不知多长时间后，楼里的改造人像是终于布置好了。");
		appendP("一个体毛浓黑的光头老家伙从楼梯口走出。");
		break;
		/*case 1:
		appendP("测试一下");
		appendButton("成功了吗？",1,5,1);*/
		
	}
}
generateNxtText(1);
updateLuck();